package foundation.app;


import model.sys.BLogicException;
import model.sys.RestResult;

import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

/**
 * @author futao
 * Created on 18-7-23-下午5:04.
 */
@Provider
public class ExceptionWrapper extends BLogicException implements ExceptionMapper<BLogicException> {
    /**
     * 序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中，
     * 当反序列化时系统会去检测文件中的serialVersionUID，
     * 判断它是否与当前类的serialVersionUID一致，
     * 如果一致就说明序列化类的版本与当前类版本是一样的，
     * 可以反序列化成功，
     * 否则失败。
     * <p>
     * 1. 1L
     * 2.根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段
     */
    private static final String serialVersionUID = "";


    @Override
    public Response toResponse(BLogicException BLogicException) {
        RestResult result = new RestResult();
        result.setCode(BLogicException.getCode());
        result.setData(BLogicException.getMessage());

        return Response.status(Response.Status.BAD_REQUEST)
                       .entity(ObjectToGsonString.parse(result))
                       .build();
    }
}
